# To do:
# 0. 应用**kargs参数
# 0.5 根据输入坐标的数量以及最大值和最小值，决定坐标轴的显示长度和单位长度
# 1. 解决将`num_site`和x、y的坐标设置为全局变量后，包装成`get_info`函数
# 2. 输入xy的坐标部分需要插入`try...except`
# 3. 
# 4. 坐标轴标出信息（信息过长时，应竖直书写）
# 5. 实现单线多色、多线多色、圆形正方形三角形标点等个性化定制内容
# 6. 封装为GUI


import turtle as t

try:
    num_site = int(input("需要画出几个点？"))
except ValueError:
    print("请输入一个正整数")
except:
    print("未知错误")
if num_site < 6:
    site_ls = []
    for i in range(num_site):
        site_ls.append("(x{0},y{0})".format(i+1))
    print("假设各点的坐标分别为{}，请依次输入各个点的横、纵坐标：".format(", ".join(site_ls)),end="\n")
else:
    print("假设各点的坐标分别为(x1,y1), (x2,y2), (x3,y3)......(x{0},y{0})，请依次输入各个点的横、纵坐标：)".format(num_site),end="\n")
for i in range(num_site):
    exec("x{0} = eval(input('x{0}='))".format(i+1))
    exec("y{0} = eval(input('y{0}='))".format(i+1))
    print("\n")

def turtle_set():
    #t.setworldcoordinates(0, 0, 600, 600)
    t.pensize(3)
    t.speed(10)
    t.penup()
    t.goto(-200,-200)
    t.pendown()

def line(mark_angle):
    for i in range(num_site):
        t.fd(100)
        t.left(mark_angle)
        t.fd(5)
        t.bk(5)
        t.right(mark_angle)
    t.fd(105)
    t.begin_fill()
    tri_angle = [150,120,120]
    for i in range(3):
        t.left(tri_angle[i])
        t.fd(10)
    t.end_fill()

def dot():
    t.penup()
    t.goto(x1 - 200,y1 - 200)
    t.pendown()
    for i in range(num_site - 1):
        t.goto(eval("x{0} - 200,y{0} - 200".format(i+2)))
        t.dot(8)

def main():
    turtle_set()
    line(90)
    #t.home()
    t.goto(-200,-200)
    t.seth(90)
    line(270)
    dot()
    t.hideturtle()
    t.done()

main()



